const arr = [1,2,3]

arr.reduce((p, value, index)=>{
    console.log(p)
    return p.then((v)=>{
       console.log(v)
        return  Promise.resolve(11)
    }).then((v)=>{
        console.log(v)
        return new Promise(resolve=>{
            setTimeout(()=>{
                resolve(333)
            }, 4000)
        }).then(()=>{
            return 444
        })
    })
}, Promise.resolve(1))